package com.newcoin.admin.service;

import com.newcoin.admin.entity.Result;
import org.springframework.ui.Model;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.math.BigDecimal;

public interface AdminService {

    Result login(String username, String password, HttpSession session) throws Exception;

    String index(Model model) throws Exception;

    String getUsers(Model model, Long id, String mobile, Integer add, Integer type, String start, String end, Integer current) throws Exception;

    Result forbidOrLiftForbidWithdraw(Long id, Integer state) throws Exception;

    Result forbidOrLiftForbidLogin(Long id, Integer state) throws Exception;

    Result editUser(Long id, Long pid, String mobile, String loginPwd, String payPwd, String path) throws Exception;

    String outLogin(HttpSession session) throws Exception;

    String getRecharge(Model model, Integer current, String id, String mobile, String start, String end, Integer type) throws Exception;

    Result confirmRecharge(String id, Integer status) throws Exception;

    String getWithdrawal(Model model, Integer current, String id, String mobile, String start, String end, Integer type) throws Exception;

    Result dealWith(String id) throws Exception;

    Result turnDown(String id, String content) throws Exception;

    String getGoods(Model model, Integer current, Integer priceStart, Integer priceEnd, String start, String end, Integer type) throws Exception;

    Result editGood(Long id, String goodsName, BigDecimal goodsPrice, String goodsPic, BigDecimal proportion) throws Exception;

    Result addGood(String goodsName, BigDecimal goodsPrice, String goodsPic, BigDecimal proportion) throws Exception;

    String getVip(Model model, Integer level, String name) throws Exception;

    Result editVip(Integer id, String name, Integer level, BigDecimal amount, BigDecimal fee, BigDecimal max, Integer orderNum) throws Exception;

    Result addVip(String name, Integer level, BigDecimal amount, BigDecimal fee, BigDecimal max, Integer orderNum) throws Exception;

    Result deleteVip(Integer id) throws Exception;

    String taskArea(Model model) throws Exception;

    Result editTaskArea(Integer id, BigDecimal proportion, Integer levelCondition) throws Exception;

    String bonus(Model model) throws Exception;

    Result editBonus(Integer id, String name, BigDecimal proportion) throws Exception;

    String product(Model model) throws Exception;

    Result editProduct(Integer id, BigDecimal startAmount, BigDecimal endAmount, BigDecimal dailyReleaseRatio, Integer level) throws Exception;

    String ann(Model model, Integer current, String title, String start, String end, Integer type) throws Exception;

    Result addAnn(String title, String content) throws Exception;

    Result offShelf(String id) throws Exception;

    Result editAnn(String id, String title, String content) throws Exception;

    String carousel(Model model) throws Exception;

    Result addCarousel(MultipartFile file) throws Exception;

    Result deleteCarousel(Integer id) throws Exception;

    String pay(Model model) throws Exception;

    Result editPay(Integer id, Integer type, String bankNum, String name, String info, MultipartFile file) throws Exception;

    String time(Model model) throws Exception;

    Result save(Integer id, String start, String end) throws Exception;

    void exportExcel(HttpServletResponse response, Integer current, String id, String mobile, String start, String end, Integer type) throws Exception;

    String app(Model model) throws Exception;

    Result editApp(String version, String appUrl, String wGetUrl, Integer status, String remark) throws Exception;

}
